In mobile applications, such as with personal data assistants (PDAs), smart telephones or laptop computers, often times off-line processing (or “intermittently connected operations”) may be carried out so as to work without being continuously connected to a network or other processing system. One aspect of off-line processing involves the transfer of files from the mobile processing system to the network or other processing system.
Conventional off-line processing for file transfers typically would result in a queue of file transfers. The file transfers would be made in a serial fashion when a connection was established. Generally, before one file transfer could begin, the previous file transfer would end. Typically, if the connection was lost during the file transfer, the file transfer may have to be started all over. Thus, small files may have to wait for larger files to be transferred and higher priority files may also have to wait depending on when they were selected to be transferred. Furthermore, until the file transfer was completed, the file transferred may not be free to edit or otherwise modify.
A server system may need to transfer the same file to a plurality of client systems. Because individual clients may connect at different times for different lengths of time, the server system may be at different points of transferring the same file to different clients at any given point in time. Many conventional file transfer systems lock the file between the time the file transfer starts and the time that it is complete. Because there may be a substantial delay between the time an application on a server decides to transfer a file to one or more clients and the time that the last transfer is complete, locking the file on the server while the transfers occur can prevent the server from performing other useful functions with the file.
Conventional mobile systems also typically utilize the same transfer protocol and technique independent of the connection to the network. Thus, transfers which may be optimized for one connection type or protocol may be inefficient when utilized with other connection types or protocols.
Various systems have been developed in attempts to overcome limitations of data transfers. For example, U.S. Pat. No. 5,751,719 to Chen et al. entitled METHOD AND SYSTEM FOR DATA TRANSFER IN THE PRESENCE OF DISCONNECTS describes methods and systems for controlling data transfer operations during a communication between a transmitter and a receiver. Data packets which have been stored at the receiver remain stored there even after a disconnect to avoid the need for retransmitting the data packets. Data transmission is then resynchronized after the connection is reestablished. While such a system may reduce the impact of disconnects on file transfers, it may also fail to address the issue of sequential file transfer. Furthermore, such a system is not described as compensating for differing connection types and connection protocols.
Another example of a checkpoint system is provided in certain implementations of the Internet File Transfer Protocol (FTP). While these implementations allow checkpointing of individual file transfers, they typically do not provide checkpointing for multiple file transfers. Furthermore, these implementations typically transfer entire files sequentially on a first-in-first out fashion of the entire file. Accordingly, these implementations may not provide fairness or efficiently handle off-line file transfer requests such as may be common in mobile computing. FTP implementations also use multiple connections which may be impractical for many mobiles users, particularly those that use wireless networks.
Other checkpoint or restarting systems are described in U.S. Pat. Nos. 5,121,479, 5,269,017, 5,446,904, 5,551,043, 5,758,174, 5,765,004, and 5,802,267. Other checkpoint or restart systems are also described in IBM Technical Disclosures Vol. 38, No. 9, pp. 191-93 (1995) and Vol. 31, No. 5, pp. 409-410 (1988).
File servers and point-of-sale systems have also provided interleaved messages or files. See IBM Technical Disclosure Bulletin, Vol. 32, No. 9B, pp. 91-92 (1990). For example, U.S. Pat. No. 5,500,890 to Rogge et al. entitled POINT-OF-SALE SYSTEM USING MULTI-THREADED TRANSACTIONS AND INTERLEAVED FILE TRANSFER describes a dial-up asynchronous communication protocol which allows multiple point of sale terminals to multi-thread transactions to a host computer and to interleave mail messages and file transfers when credit card authorization requests from the terminal or responses to those authorization requests become available. Such a system, however, does not address the file availability issue of multiple transfers. Furthermore, the point of sale environment typically is homogeneous in the capabilities of the point of sale terminals and the protocols utilized.
Despite these previous efforts, a need still exists for improvements in file transfer, in particular in the mobile environment which may include varying connection types and protocols and differing devices utilized for such file transfers.